package edu.zut.exceptionPra;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Model {

    public static void main(String[] args) throws ParseException {
//        Date date = parseDate();
//        System.out.println("date = " + date);
        //调用一个抛出异常的方法时，必须处理
        parse2();
    }


    static Date parseDate() {
        String source = "2001-01:01";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        //捕获异常   try  catch
        Date date = null;
        try {
            date = format.parse(source);
            int i = 1/0;
        }catch (ParseException | ArithmeticException | NullPointerException e){
            //可以去做一些备选方案
            date = new Date();
            String message = e.getMessage();
            System.out.println("message = " + message);
            e.printStackTrace();
        }finally {
            //不管是否发生异常，都会执行finally，资源关闭
            System.out.println("finally执行");
        }
        return date;
    }
    //抛异常   抛给调用者，如果都不处理，抛给jvm,如果有异常，直接中断执行，输出异常信息
    static void parse2() throws ParseException{
        String source = "2001-01:01";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        //抛出异常
        Date date = format.parse(source);
        System.out.println("date = " + date);
    }
}